package com.kuhh.utils;

import java.security.MessageDigest;

public class EncryptUtils {

	private static final String[] HEX_DIG_ITS = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
	
	private static final String DEFAULT_CHARSET_NAME = "utf-8";

	/**
     * MD5加密
     * @param origin 字符
     * @return
     */
    public static String MD5Encode(String origin){
    	 return MD5Encode(origin, DEFAULT_CHARSET_NAME);
    }

	    /**
	     * MD5加密
	     * @param origin 字符
	     * @param charsetname 编码
	     * @return
	     */
	    public static String MD5Encode(String origin, String charsetname){
	        String resultString = null;
	        try{
	            resultString = new String(origin);
	            MessageDigest md = MessageDigest.getInstance("MD5");
	            if(null == charsetname || "".equals(charsetname)){
	                resultString = byteArrayToHexString(md.digest(resultString.getBytes()));
	            }else{
	                resultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname)));
	            }
	        }catch (Exception e){
	        }
	        return resultString;
	    }


	    public static String byteArrayToHexString(byte[] b){
	        StringBuffer resultSb = new StringBuffer();
	        for(int i = 0; i < b.length; i++){
	            resultSb.append(byteToHexString(b[i]));
	        }
	        return resultSb.toString();
	    }

	    public static String byteToHexString(byte b){
	        int n = b;
	        if(n < 0){
	            n += 256;
	        }
	        int d1 = n / 16;
	        int d2 = n % 16;
	        return HEX_DIG_ITS[d1] + HEX_DIG_ITS[d2];
	    } 
	   

}
